(function ($){ 'use strict'; jQuery.each(gallery_video_resp_lightbox_obj, function (index, value){ if(value.indexOf('true') > -1||value.indexOf('false') > -1) gallery_video_resp_lightbox_obj[index]=value=="true"; }); function Lightbox(element, options){ this.el=element; this.$element=$(element); this.$body=$('body'); this.objects={}; this.lightboxModul={}; this.$item=''; this.$cont=''; this.$items=this.$body.find('a.vg_responsive_lightbox'); this.settings=$.extend({}, this.constructor.defaults, options); this.init(); return this; } Lightbox.defaults={ idPrefix: 'rwd-', classPrefix: 'rwd-', attrPrefix: 'data-', slideAnimationType: gallery_video_resp_lightbox_obj.gallery_video_lightbox_slideAnimationType, lightboxView: gallery_video_resp_lightbox_obj.gallery_video_lightbox_lightboxView, speed: gallery_video_resp_lightbox_obj.gallery_video_lightbox_speed_new, width: gallery_video_resp_lightbox_obj.gallery_video_lightbox_width_new + '%', height: gallery_video_resp_lightbox_obj.gallery_video_lightbox_height_new + '%', videoMaxWidth: gallery_video_resp_lightbox_obj.gallery_video_lightbox_videoMaxWidth, sizeFix: true, overlayDuration: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_overlayDuration, slideAnimation: true, overlayClose: gallery_video_resp_lightbox_obj.gallery_video_lightbox_overlayClose_new, loop: gallery_video_resp_lightbox_obj.gallery_video_lightbox_loop_new, escKey: false, keyPress: false, arrows: true, mouseWheel: false, showCounter: false, defaultTitle: '', preload: 10, showAfterLoad: true, nextHtml: '', prevHtml: '', sequence_info: gallery_video_resp_lightbox_obj.gallery_video_lightbox_sequence_info, sequenceInfo: gallery_video_resp_lightbox_obj.gallery_video_lightbox_sequenceInfo, slideshow: gallery_video_resp_lightbox_obj.gallery_video_lightbox_slideshow_new, slideshowAuto: gallery_video_resp_lightbox_obj.gallery_video_lightbox_slideshow_auto_new, slideshowSpeed: gallery_video_resp_lightbox_obj.gallery_video_lightbox_slideshow_speed_new, slideshowStart: '', slideshowStop: '', hideControlOnEnd: false, watermark: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark, socialSharing: gallery_video_resp_lightbox_obj.gallery_video_lightbox_socialSharing, titlePos: gallery_video_resp_lightbox_obj.gallery_video_lightbox_title_pos, fullwidth: gallery_video_resp_lightbox_obj.gallery_video_lightbox_fullwidth_effect, zoomLogo: gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoomlogo, wURL: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_link, watermarkURL: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_url, wURLnewTab: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_url_new_tab, share: false }; Lightbox.prototype.init=function (){ var $object=this, $hash; $hash=window.location.hash; ($object.settings.watermark&&$('.watermark').watermark()); if($hash.indexOf('lightbox&') > 0){ $object.index=parseInt($hash.split('&slide=')[1], 10) - 1; $object.$body.addClass('rwd-share'); if(!$object.$body.hasClass('rwd-on')){ setTimeout(function (){ $object.build($object.index); }, 900); $object.$body.addClass('rwd-on'); }} (($object.settings.preload > $object.$items.length)&&($object.settings.preload=$object.$items.length)); $object.$items.on('click.rwdcustom', function (event){ event=event||window.event; event.preventDefault ? event.preventDefault():(event.returnValue=false); $object.index=$object.$items.index(this); if(!$object.$body.hasClass($object.settings.classPrefix + 'on')){ $object.build($object.index); $object.$body.addClass($object.settings.classPrefix + 'on'); }}); $object.$body.on('click', function (){ $object.$_y_=window.pageYOffset; }); switch (this.settings.zoomLogo){ case '1': $object.$body.addClass('rwd-zoomGlass'); break; case '2': $object.$body.addClass('rwd-zoomHand'); break; }}; Lightbox.prototype.build=function (index){ var $object=this; $object.structure(); $object.lightboxModul['modul']=new $.fn.lightboxVideo.lightboxModul['modul']($object.el); $object.slide(index, false, false); ($object.settings.keyPress&&$object.addKeyEvents()); if($object.$items.length > 1){ $object.arrow(); ($object.settings.mouseWheel&&$object.mousewheel()); ($object.settings.slideshow&&$object.slideShow()); } $object.counter(); $object.closeGallery(); $object.$cont.on('click.rwd-container', function (){ $object.$cont.removeClass($object.settings.classPrefix + 'hide-items'); }); $object.calculateDimensions(); }; Lightbox.prototype.structure=function (){ var $object=this, list='', controls='', i, subHtmlCont1='', subHtmlCont2='', subHtmlCont3='', close1='', close2='', socialIcons='', template, $arrows, $next, $prev, $_next, $_prev, $close_bg, $download_bg, $download_bg_, $contInner, $view; $view=(this.settings.lightboxView==='view6') ? 'rwd-view6':''; this.$body.append(this.objects.overlay=$('
') ); this.objects.overlay.css('transition-duration', this.settings.overlayDuration + 'ms'); var $wURL='', $target=''; if($object.settings.watermark&&$object.settings.wURL&&gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_text){ if($object.settings.wURLnewTab){ $target='target="_blank"'; } $wURL=''; } for (i=0; i < this.$items.length; i++){ list +='
' + $wURL + '
'; } $close_bg='' + '' + ''; switch (this.settings.lightboxView){ case 'view1': default: $_next='' + '' + ''; $_prev='' + '' + ''; subHtmlCont1='
'; close1='' + $close_bg + ''; break; case 'view2': $_next='' + '' + ''; $_prev='' + '' + ''; subHtmlCont2='
'; close2='
' + $close_bg + ''; break; case 'view3': $_next='' + '' + '' + ''; $_prev='' + '' + '' + ''; subHtmlCont1='
'; close1='' + $close_bg + ''; break; case 'view4': $_next='' + '' + ''; $_prev='' + '' + ''; $close_bg='' + '' + ''; subHtmlCont2='
'; close1='' + $close_bg + ''; break; case 'view5': case 'view6': $_next='' + '' + ''; $_prev='' + '' + ''; $close_bg='' + '' + ''; subHtmlCont3 +='
'; subHtmlCont3 +='
'; close1='' + $close_bg + ''; break; } if(this.settings.arrows&&this.$items.length > 1){ controls='
' + '
' + $_prev + this.settings.prevHtml + '
' + '
' + $_next + this.settings.nextHtml + '
' + '
'; } if(this.settings.socialSharing&&(this.settings.lightboxView!=='view5'||this.settings.lightboxView!=='view6')){ socialIcons='
'; } $contInner=(this.settings.lightboxView==='view5'||this.settings.lightboxView==='view6') ? '
' + subHtmlCont3 + '
':''; var $zoomDiv=gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoom ? '
':''; var arrowHE=(this.settings.lightboxView!=='view2'&&this.settings.lightboxView!=='view3') ? this.settings.arrowsHoverEffect:''; template='
' + $zoomDiv + '
' + '
' + list + '
' + $contInner + '
' + close1 + subHtmlCont2 + '
' + controls + '
' + close2 + subHtmlCont1 + '
' + '
' + '
'; if($object.settings.socialSharing){ setTimeout(function (){ $object.socialShare(); }, 50); } this.$body.append(template); this.$cont=$('.' + $object.settings.classPrefix + 'cont'); this.$item=this.$cont.find('.' + $object.settings.classPrefix + 'item'); if(!this.settings.slideAnimation){ this.$cont.addClass(this.settings.classPrefix + 'animation'); this.settings.slideAnimationType=this.settings.classPrefix + 'slide'; }else{ this.$cont.addClass(this.settings.classPrefix + 'use'); } $object.calculateDimensions(); $(window).on('resize.rwd-container', function (){ setTimeout(function (){ $object.calculateDimensions(); }, 100); }); this.$item.eq(this.index).addClass(this.settings.classPrefix + 'current'); if(this.effectsSupport()){ this.$cont.addClass(this.settings.classPrefix + 'support'); }else{ this.$cont.addClass(this.settings.classPrefix + 'noSupport'); this.settings.speed=0; } this.$cont.addClass(this.settings.slideAnimationType); ((this.settings.showAfterLoad)&&(this.$cont.addClass(this.settings.classPrefix + 'show-after-load'))); if(this.effectsSupport()){ var $inner=this.$cont.find('.cont-inner'); $inner.css('transition-timing-function', 'ease'); $inner.css('transition-duration', this.settings.speed + 'ms'); } switch ($object.settings.lightboxView){ case 'view1': case 'view2': case 'view3': $inner.css({ height: 'calc(100% - 92px)', top: '47px' }); break; case 'view4': $inner.css({ height: 'calc(100% - 92px)', top: '45px' }); break; } $object.objects.overlay.addClass('in'); setTimeout(function (){ $object.$cont.addClass($object.settings.classPrefix + 'visible'); }, this.settings.overlayDuration); if(this.settings.download){ $download_bg='' + '' + ''; $download_bg_='' + '' + '' + ''; switch (this.settings.lightboxView){ case 'view1': default: this.$cont.find('.' + $object.settings.classPrefix + 'toolbar').append('' + $download_bg + ''); break; case 'view2': this.$cont.find('.' + $object.settings.classPrefix + 'bar').append('' + $download_bg + ''); break; case 'view4': $('' + $download_bg + '').insertBefore($('.rwd-title')); break; case 'view5': case 'view6': $('.rwd-toolbar').append('' + $download_bg_ + ''); break; }} $arrows=$('.rwd-arrows .rwd-next, .rwd-arrows .rwd-prev'); $next=$('.rwd-arrows .rwd-next'); $prev=$('.rwd-arrows .rwd-prev'); var title_text=$('.rwd-title'); switch (this.settings.titlePos){ case 'left': title_text.css({'text-align': 'left'}); break; case 'center': title_text.css({'text-align': 'center'}); break; case 'right': title_text.css({'text-align': 'right'}); break; } switch (this.settings.lightboxView){ case 'view1': default: $arrows.css({'top': '50%'}); $next.css({'right': '20px'}); $prev.css({'left': '20px'}); break; case 'view2': $arrows.css({'bottom': '0'}); $next.css({'right': '40%'}); $prev.css({'left': '40%'}); break; case 'view3': $arrows.css({'top': '14px', 'z-index': '1090000'}); $next.css({'right': '20px'}); $prev.css({'right': '55px'}); title_text.css({'text-align': 'left', 'border-top': '1px solid #999'}); $('.rwd-close').css({'margin-right': '45%'}); $('.rwd-overlay, .rwd-toolbar, .rwd-title, .rwd-next, .rwd-prev').css({'background': 'rgba(255, 255, 255, 1)'}); $('.rwd-title, .shareLook').css({'color': '#999'}); $('.rwd-toolbar').css({'border-bottom': '1px solid #999'}); $('.rwd-toolbar .rwd-icon, .rwd-arrows .rwd-icon').addClass('rwd-icon0'); break; } this.prevScrollTop=$(window).scrollTop(); $object.objects.content=$('.rwd-container'); $object.objects.content.css({ 'width': $object.settings.width, 'height': $object.settings.height }); var $color, $zoomTop=(document.documentElement.clientHeight - $object.objects.content.height()) / 2; switch (this.settings.lightboxView){ case 'view3': $color='rgba(255,255,255,.9)'; break; default: $color='rgba(0,0,0,.9)'; break; } $('.rwd-zoomDiv').css({ 'width': $object.settings.width, 'top': $zoomTop + 'px', 'background-color': $color }); setTimeout(function (){ $('.rwd-container').bind('contextmenu', function (){ return false; }); }, 50); }; Lightbox.prototype.calculateDimensions=function (){ var $object=this, $width; $width=$('.' + $object.settings.classPrefix + 'current').height() * 16 / 9; if($width > $object.settings.videoMaxWidth){ $width=$object.settings.videoMaxWidth; } $('.' + $object.settings.classPrefix + 'video-cont ').css({ 'max-width': $width + 'px' }); }; Lightbox.prototype.effectsSupport=function (){ var transition, root, support; support=function (){ transition=['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition']; root=document.documentElement; for (var i=0; i < transition.length; i++){ if(transition[i] in root.style){ return transition[i] in root.style; }} }; return support(); }; Lightbox.prototype.isVideo=function (src, index){ var youtube, vimeo; youtube=src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i); vimeo=src.match(/\/\/?player.vimeo.com\/([0-9a-z\-_]+)/i); if(youtube){ return { youtube: youtube };}else if(vimeo){ return { vimeo: vimeo };}}; Lightbox.prototype.counter=function (){ if(this.settings.showCounter){ switch (this.settings.lightboxView){ case 'view1': default: $('.' + this.settings.classPrefix + 'toolbar').append(this.objects.counter=$('
')); $('#rwd-counter').css({'padding-left': '23px'}); break; case 'view2': case 'view4': $('.' + this.settings.classPrefix + 'bar').append('
').append(this.objects.counter=$('
')); break; case 'view5': case 'view6': $('.contInner').append(this.objects.counter=$('
')); break; } if(this.settings.sequence_info==="image"){ this.settings.sequence_info="video"; } this.objects.counter.append(this.objects.current=$('
' + this.settings.sequence_info + ' ' + (parseInt(this.index, 10) + 1) + ' ' + this.settings.sequenceInfo + ' ' + this.$items.length + '
') ); }}; Lightbox.prototype.setTitle=function (index){ var $object=this, $title, $currentElement; $currentElement=this.$items.eq(index); $title=$currentElement.find('img').attr('alt') || $currentElement.find('img').attr('title') || $currentElement.find('a').attr('title') || this.settings.defaultTitle || $currentElement.next('img').attr('alt')||''; this.$cont.find('.' + this.settings.classPrefix + 'title').html('
' + $title + '
'); (($object.settings.lightboxView==='view2')&&$('.rwd-title-text').css({'width': '100%'})); if($object.settings.lightboxView!=='view1'&&$object.settings.lightboxView!=='view3'&&$object.settings.lightboxView!=='view4'){ ($title===''&&$object.settings.socialSharing) ? this.$cont.find('.' + this.settings.classPrefix + 'title').hide() : this.$cont.find('.' + this.settings.classPrefix + 'title').show(); }}; Lightbox.prototype.setDescription=function (index){ var $object=this, $description, $currentElement; $currentElement=this.$items.eq(index); $description=$currentElement.attr('data-description')||''; this.$cont.find('.' + this.settings.classPrefix + 'description').html('
' + $description + '
'); }; Lightbox.prototype.preload=function (index){ for (var i=1; i <=this.settings.preload; i++){ if(i >=this.$items.length - index){ break; } this.loadContent(index + i, false, 0); } for (var j=1; j <=this.settings.preload; j++){ if(index - j < 0){ break; } this.loadContent(index - j, false, 0); }}; Lightbox.prototype.socialShare=function (){ var $object=this; var shareButtons=''; if(this.settings.lightboxView==='view5'||this.settings.lightboxView==='view6'){ $('.contInner').append(shareButtons); }else{ $('.' + this.settings.classPrefix + 'socialIcons').append(shareButtons); } setTimeout(function (){ $('#rwd-share-facebook').attr('href', 'https://www.facebook.com/sharer/sharer.php?u=' + (encodeURIComponent(window.location.href))); $('#rwd-share-twitter').attr('href', 'https://twitter.com/intent/tweet?text=&url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-googleplus').attr('href', 'https://plus.google.com/share?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-pinterest').attr('href', 'http://www.pinterest.com/pin/create/button/?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-linkedin').attr('href', 'http://www.linkedin.com/shareArticle?mini=true&url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-tumblr').attr('href', 'http://www.tumblr.com/share/link?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-reddit').attr('href', 'http://reddit.com/submit?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-buffer').attr('href', 'https://bufferapp.com/add?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-digg').attr('href', 'http://www.digg.com/submit?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-vk').attr('href', 'http://vkontakte.ru/share.php?url=' + (encodeURIComponent(window.location.href))); $('#rwd-share-yummly').attr('href', 'http://www.yummly.com/urb/verify?url=' + (encodeURIComponent(window.location.href))); }, 200); }; Lightbox.prototype.changeHash=function (index){ var $object=this; (($object.settings.socialSharing)&&(window.location.hash='/lightbox&slide=' + (index + 1))); }; Lightbox.prototype.loadContent=function (index, rec, delay){ var $object, src, isVideo; $object=this; function isImg(){ src=$object.$items.eq(index).attr('href'); return src.match(/\.(jpg|png|gif)\b/); } if($object.settings.watermark){ if(isImg()){ src=$object.$items.eq(index).find('img').attr('data-src'); }}else{ src=$object.$items.eq(index).attr('href'); } isVideo=$object.isVideo(src, index); if(!$object.$item.eq(index).hasClass($object.settings.classPrefix + 'loaded')){ if(isVideo){ $object.$item.eq(index).prepend('
'); $object.$element.trigger('hasVideo.rwd-container', [index, src]); }else{ $object.$item.eq(index).prepend('
'); } $object.$element.trigger('onAferAppendSlide.rwd-container', [index]); $object.$item.eq(index).addClass($object.settings.classPrefix + 'loaded'); } $object.$item.eq(index).find('.' + $object.settings.classPrefix + 'object').on('load.rwd-container error.rwd-container', function (){ var speed=0; if(delay){ speed=delay; } setTimeout(function (){ $object.$item.eq(index).addClass($object.settings.classPrefix + 'complete'); }, speed); }); if(rec===true){ if(!$object.$item.eq(index).hasClass($object.settings.classPrefix + 'complete')){ $object.$item.eq(index).find('.' + $object.settings.classPrefix + 'object').on('load.rwd-container error.rwd-container', function (){ $object.preload(index); }); }else{ $object.preload(index); }} }; Lightbox.prototype.slide=function (index, fromSlide, fromThumb){ var $object, prevIndex; $object=this; prevIndex=this.$cont.find('.' + $object.settings.classPrefix + 'current').index(); var length=this.$item.length, time=0, next=false, prev=false; if(this.settings.download){ var src; if(!this.settings.watermark){ src=$object.$items.eq(index).attr('data-download-url')!=='false'&&($object.$items.eq(index).attr('data-download-url')||$object.$items.eq(index).attr('href')); }else{ src=$object.$items.eq(index).find('img').attr('data-src'); } if(src){ $('#' + $object.settings.classPrefix + 'download').attr('href', src); $object.$cont.removeClass($object.settings.classPrefix + 'hide-download'); $object.$cont.removeClass($object.settings.classPrefix + 'hide-actual-size'); $object.$cont.removeClass($object.settings.classPrefix + 'hide-fullwidth'); $object.$cont.removeClass($object.settings.classPrefix + 'hide-zoom-in'); $object.$cont.removeClass($object.settings.classPrefix + 'hide-zoom-out'); }else{ $object.$cont.addClass($object.settings.classPrefix + 'hide-download'); $object.$cont.addClass($object.settings.classPrefix + 'hide-actual-size'); $object.$cont.addClass($object.settings.classPrefix + 'hide-fullwidth'); $object.$cont.addClass($object.settings.classPrefix + 'hide-zoom-in'); $object.$cont.addClass($object.settings.classPrefix + 'hide-zoom-out'); }} this.$element.trigger('onBeforeSlide.rwd-container', [prevIndex, index, fromSlide, fromThumb]); setTimeout(function (){ $object.setTitle(index); }, time); if($object.settings.lightboxView==='view5'||$object.settings.lightboxView==='view6'){ setTimeout(function (){ $object.setDescription(index); }, time); } this.arrowDisable(index); $object.$cont.addClass($object.settings.classPrefix + 'no-trans'); this.$item.removeClass($object.settings.classPrefix + 'prev-slide ' + $object.settings.classPrefix + 'next-slide'); if(!fromSlide){ if(index < prevIndex){ prev=true; if((index===0)&&(prevIndex===length - 1)&&!fromThumb){ prev=false; next=true; }}else if(index > prevIndex){ next=true; if((index===length - 1)&&(prevIndex===0)&&!fromThumb){ prev=true; next=false; }} if(prev){ this.$item.eq(index).addClass($object.settings.classPrefix + 'prev-slide'); this.$item.eq(prevIndex).addClass($object.settings.classPrefix + 'next-slide'); }else if(next){ this.$item.eq(index).addClass($object.settings.classPrefix + 'next-slide'); this.$item.eq(prevIndex).addClass($object.settings.classPrefix + 'prev-slide'); } setTimeout(function (){ $object.$item.removeClass($object.settings.classPrefix + 'current'); $object.$item.eq(index).addClass($object.settings.classPrefix + 'current'); $object.$cont.removeClass($object.settings.classPrefix + 'no-trans'); }, 50); }else{ var slidePrev=index - 1; var slideNext=index + 1; if((index===0)&&(prevIndex===length - 1)){ slideNext=0; slidePrev=length - 1; }else if((index===length - 1)&&(prevIndex===0)){ slideNext=0; slidePrev=length - 1; } this.$item.removeClass($object.settings.classPrefix + 'prev-slide ' + $object.settings.classPrefix + 'current ' + $object.settings.classPrefix + 'next-slide'); $object.$item.eq(slidePrev).addClass($object.settings.classPrefix + 'prev-slide'); $object.$item.eq(slideNext).addClass($object.settings.classPrefix + 'next-slide'); $object.$item.eq(index).addClass($object.settings.classPrefix + 'current'); } $object.loadContent(index, true, $object.settings.overlayDuration); $object.$element.trigger('onAfterSlide.rwd-container', [prevIndex, index, fromSlide, fromThumb]); if(this.settings.showCounter){ $('#' + $object.settings.classPrefix + 'counter-current').text(index + 1); } if(this.settings.socialSharing){ $object.changeHash(index); } var $top, $left, $wWidth, $wHeight, $imgWidth, $imgHeight, $wmWidth, $wmHeight, $pos, $item; $item=$('.rwd-item.rwd-current'); $pos=+gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_margin; $wWidth=+gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_containerWidth; $wHeight=+gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_textFontSize; $imgWidth=$object.$item.eq(index).find('img').width(); $imgHeight=$object.$item.eq(index).find('img').height(); $wmWidth=$item.width(); $wmHeight=$item.height(); switch ('pos' + gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_position_new){ case 'pos1': $top=($wmHeight - $imgHeight) / 2 + $pos; $left=($wmWidth - $imgWidth) / 2 + $pos; break; case 'pos2': $top=($wmHeight - $imgHeight) / 2 + $pos; $left=($wmWidth - $wWidth) / 2; break; case 'pos3': $top=($wmHeight - $imgHeight) / 2 + $pos; $left=($wmWidth + $imgWidth) / 2 - $wWidth - $pos; break; case 'pos4': $top=($wmHeight - $wHeight) / 2; $left=($wmWidth - $imgWidth) / 2 + $pos; break; case 'pos5': $top=($wmHeight - $wHeight) / 2; $left=($wmWidth - $wWidth) / 2; break; case 'pos6': $top=($wmHeight - $wHeight) / 2; $left=($wmWidth + $imgWidth) / 2 - $wWidth - $pos; break; case 'pos7': $top=($wmHeight + $imgHeight) / 2 - $wHeight - $pos; $left=($wmWidth - $imgWidth) / 2 + $pos; break; case 'pos8': $top=($wmHeight + $imgHeight) / 2 - $wHeight - $pos; $left=($wmWidth - $wWidth) / 2; break; case 'pos9': $top=($wmHeight + $imgHeight) / 2 - $wHeight - $pos; $left=($wmWidth + $imgWidth) / 2 - $wWidth - $pos; break; default: $top=($wmHeight - $wHeight) / 2; $left=($wmWidth - $wWidth) / 2; } $('.w_url').css({ position: 'absolute', width: $wWidth + 'px', height: $wHeight + 'px', top: $top + 'px', left: $left + 'px' }); $object.calculateDimensions(); $('.rwd-container .rwd-thumb-item img').css({ opacity: 1 - +gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_overlay_opacity / 100 }); $('.rwd-container .rwd-thumb-item.active img').css({ opacity: 1 }); var $id=jQuery('.gallery-video-content').attr('data-gallery_video_id'), $autoplay=jQuery('.gallery-video-content').attr('data-gallery_autoplay'), $disable_rel=jQuery('.gallery-video-content').attr('data-disable_related'); if($autoplay==='on'&&$disable_rel==='on'){ setTimeout(function (){ var $iframe=jQuery('.rwd-current').find('iframe'), $src=$iframe.attr('src'), $src_1; if($src.indexOf('autoplay')===-1&&$src.indexOf('rel')===-1){ $src_1=$src + '?rel=0&autoplay=1'; }else{ $src_1=$src.substr(0, $src.length - 1) + '1'; } $iframe.attr('src', $src_1); }, 50); }else if($autoplay==='off'&&$disable_rel==='on'){ setTimeout(function (){ var $iframe=jQuery('.rwd-current').find('iframe'), $src=$iframe.attr('src'), $src_1; if($src.indexOf('autoplay')===-1&&$src.indexOf('rel')===-1){ $src_1=$src + '?rel=0&autoplay=0'; }else{ $src_1=$src.substr(0, $src.length - 1) + '0'; } $iframe.attr('src', $src_1); }, 50); }else if($autoplay==='on'&&$disable_rel==='off'){ setTimeout(function (){ var $iframe=jQuery('.rwd-current').find('iframe'), $src=$iframe.attr('src'), $src_1; if($src.indexOf('autoplay')===-1){ $src_1=$src + '?autoplay=1'; }else{ $src_1=$src.substr(0, $src.length - 1) + '1'; } $iframe.attr('src', $src_1); }, 50); }}; Lightbox.prototype.goToNextSlide=function (fromSlide){ var $object=this, $cont=$('.rwd-cont'), $imageObject, k; if(($object.index + 1) < $object.$item.length){ $object.index++; $object.slide($object.index, fromSlide, false); }else{ if($object.settings.loop){ $object.index=0; $object.slide($object.index, fromSlide, false); }} if($object.settings.fullwidth&&$cont.hasClass('rwd-fullwidth-on')){ $imageObject=$cont.find('.rwd-image').eq($object.index); k=$imageObject.width() / $imageObject.height(); if($imageObject.width() > $imageObject.height()&&k > 2){ $imageObject.css({ 'min-width': '100%' }); }else{ $imageObject.css({ 'min-height': '100%' }); }} setTimeout(function (){ var $current, $iframe, $src, $src_0, $src_1, $current_prev; $current=jQuery('.rwd-current'); $iframe=$current.find('iframe'); $src=$iframe.attr('src'); $current_prev=$current.prev().find('iframe'); if($current_prev.attr('src')){ if($current_prev.attr('src').indexOf('?')===-1){ $src_1='?autoplay=0'; }else{ $src_1='&autoplay=0'; } $src_0=$current_prev.attr('src') + $src_1; $current_prev.attr('src', $src_0); }else{ $current=jQuery('.rwd-container'); $current_prev=$current.find('iframe:last'); if($current_prev.attr('src').indexOf('?')===-1){ $src_1='?autoplay=0'; }else{ $src_1='&autoplay=0'; } $src_0=$current_prev.attr('src') + $src_1; $current_prev.attr('src', $src_0); }}, 50); }; Lightbox.prototype.goToPrevSlide=function (fromSlide){ var $object=this, $cont=$('.rwd-cont'), $imageObject, k; if($object.index > 0){ $object.index--; $object.slide($object.index, fromSlide, false); }else{ if($object.settings.loop){ $object.index=$object.$items.length - 1; $object.slide($object.index, fromSlide, false); }} if($object.settings.fullwidth&&$cont.hasClass('rwd-fullwidth-on')){ $imageObject=$cont.find('.rwd-image').eq($object.index); k=$imageObject.width() / $imageObject.height(); if($imageObject.width() > $imageObject.height()&&k > 2){ $imageObject.css({ 'min-width': '100%' }); }else{ $imageObject.css({ 'min-height': '100%' }); }} setTimeout(function (){ var $current, $iframe, $src, $src_0, $src_1, $currents, $current_next; $current=jQuery('.rwd-current'); $iframe=$current.find('iframe'); $src=$iframe.attr('src'); $current_next=$current.next().find('iframe'); if($current_next.attr('src')){ if($current_next.attr('src').indexOf('?')===-1){ $src_1='?autoplay=0'; }else{ $src_1='&autoplay=0'; } $src_0=$current_next.attr('src') + $src_1; $current_next.attr('src', $src_0); }else{ $current=jQuery('.rwd-container'); $current_next=$current.find('iframe:first'); if($current_next.attr('src').indexOf('?')===-1){ $src_1='?autoplay=0'; }else{ $src_1='&autoplay=0'; } $src_0=$current_next.attr('src') + $src_1; $current_next.attr('src', $src_0); }}, 500); }; Lightbox.prototype.slideShow=function (){ var $object=this, $toolbar, $play_bg, $pause_bg; $play_bg='' + '' + ''; $pause_bg='' + '' + ''; $toolbar=$('.' + $object.settings.classPrefix + 'toolbar'); if($object.settings.slideshowAuto){ $object.slideshowAuto(); } $object.$cont.find('.' + $object.settings.classPrefix + 'autoplay-button').on('click.rwd-container', function (){ !$($object.$cont).hasClass($object.settings.classPrefix + 'show-autoplay') ? $object.startSlide():$object.stopSlide(); }); }; Lightbox.prototype.slideshowAuto=function (){ var $object=this; $object.$cont.addClass('' + $object.settings.classPrefix + 'show-autoplay'); $object.startSlide(); }; Lightbox.prototype.startSlide=function (){ var $object=this; $object.interval=setInterval(function (){ $object.goToNextSlide(); }, $object.settings.slideshowSpeed); }; Lightbox.prototype.stopSlide=function (){ clearInterval(this.interval); }; Lightbox.prototype.addKeyEvents=function (){ var $object=this; if(this.$items.length > 1){ $(window).on('keyup.rwd-container', function (e){ if($object.$items.length > 1){ if(e.keyCode===37){ e.preventDefault(); $object.goToPrevSlide(); } if(e.keyCode===39){ e.preventDefault(); $object.goToNextSlide(); }} }); } $(window).on('keydown.rwd-container', function (e){ if($object.settings.escKey===true&&e.keyCode===27){ e.preventDefault(); if(!$object.$cont.hasClass($object.settings.classPrefix + 'thumb-open')){ $object.destroy(); }else{ $object.$cont.removeClass($object.settings.classPrefix + 'thumb-open'); }} }); }; Lightbox.prototype.arrow=function (){ var $object=this; this.$cont.find('.' + $object.settings.classPrefix + 'prev').on('click.rwd-container', function (){ $object.goToPrevSlide(); }); this.$cont.find('.' + $object.settings.classPrefix + 'next').on('click.rwd-container', function (){ $object.goToNextSlide(); }); }; Lightbox.prototype.arrowDisable=function (index){ if(!this.settings.loop&&this.settings.hideControlOnEnd){ if((index + 1) < this.$item.length){ this.$cont.find('.' + this.settings.classPrefix + 'next').removeAttr('disabled').removeClass('disabled'); }else{ this.$cont.find('.' + this.settings.classPrefix + 'next').attr('disabled', 'disabled').addClass('disabled'); } if(index > 0){ this.$cont.find('.' + this.settings.classPrefix + 'prev').removeAttr('disabled').removeClass('disabled'); }else{ this.$cont.find('.' + this.settings.classPrefix + 'prev').attr('disabled', 'disabled').addClass('disabled'); }} }; Lightbox.prototype.mousewheel=function (){ var $object=this, delta; $object.$cont.on('mousewheel', function (e){ e=e||window.event; delta=e.deltaY||e.detail||e.wheelDelta; (delta > 0) ? $object.goToNextSlide():$object.goToPrevSlide(); e.preventDefault ? e.preventDefault():(e.returnValue=false); }); }; Lightbox.prototype.closeGallery=function (){ var $object=this, mousedown=false; this.$cont.find('.' + $object.settings.classPrefix + 'close').on('click.rwd-container', function (){ $object.destroy(); }); if($object.settings.overlayClose){ $object.$cont.on('mousedown.rwd-container', function (e){ mousedown=($(e.target).is('.' + $object.settings.classPrefix + 'cont')||$(e.target).is('.' + $object.settings.classPrefix + 'item ')||$(e.target).is('.' + $object.settings.classPrefix + 'img-wrap')); }); $object.$cont.on('mouseup.rwd-container', function (e){ if($(e.target).is('.contInner')||$(e.target).is('.' + $object.settings.classPrefix + 'cont')||$(e.target).is('.' + $object.settings.classPrefix + 'item ')||$(e.target).is('.' + $object.settings.classPrefix + 'img-wrap')&&mousedown){ if(!$object.$cont.hasClass($object.settings.classPrefix + 'dragEvent')){ $object.destroy(); }} }); }}; Lightbox.prototype.destroy=function (d){ var $object=this; clearInterval($object.interval); $object.$body.removeClass($object.settings.classPrefix + 'on'); $(window).scrollTop($object.prevScrollTop); if(d){ $.removeData($object.el, 'lightbox'); } ($object.settings.socialSharing&&(window.location.hash='')); this.$element.off('.rwd-container'); $(window).off('.rwd-container'); if($object.$cont){ $object.$cont.removeClass($object.settings.classPrefix + 'visible'); } $object.objects.overlay.removeClass('in'); setTimeout(function (){ if($object.$cont){ $object.$cont.remove(); } $object.objects.overlay.remove(); }, $object.settings.overlayDuration + 50); window.scrollTo(0, $object.$_y_); }; $.fn.lightboxVideo=function (options){ return this.each(function (){ if(!$.data(this, 'lightbox')){ $.data(this, 'lightbox', new Lightbox(this, options)); }}); }; $.fn.lightboxVideo.lightboxModul={}; var Modul=function (element){ this.dataL=$(element).data('lightbox'); this.$element=$(element); this.dataL.modulSettings=$.extend({}, this.constructor.defaultsModul); this.init(); if(this.dataL.modulSettings.zoom&&this.dataL.effectsSupport()){ this.initZoom(); this.zoomabletimeout=false; this.pageX=$(window).width() / 2; this.pageY=($(window).height() / 2) + $(window).scrollTop(); } if(this.dataL.modulSettings.fullwidth&&this.dataL.effectsSupport()){ this.initFullWidth(); } this.$el=$(element); this.$thumbCont=null; this.thumbContWidth=0; this.thumbTotalWidth=(this.dataL.$items.length * (this.dataL.modulSettings.thumbsWidth + this.dataL.modulSettings.thumbMargin)); this.thumbIndex=this.dataL.index; this.left=0; if(gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs){ this.initThumbs(); } return this; }; Modul.defaultsModul={ idPrefix: 'rwd-', classPrefix: 'rwd-', attrPrefix: 'data-', videoMaxWidth: gallery_video_resp_lightbox_obj.gallery_video_lightbox_videoMaxWidth, fullwidth: gallery_video_resp_lightbox_obj.gallery_video_lightbox_fullwidth_effect, zoom: gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoom, scale: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoomsize / 10, thumbnail: gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs, thumbsWidth: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_width, thumbsHeight: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_height, thumbMargin: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_margin, showByDefault: true, toogleThumb: false, thumbPosition: gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_position, thumbsOverlayColor: gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_overlay_color, thumbsOverlayOpacity: gallery_video_resp_lightbox_obj.gallery_video_lightbox_thumbs_overlay_opacity }; Modul.prototype.init=function (){ var $object=this; $object.dataL.$element.on('hasVideo.rwd-container', function (event, index, src){ $object.dataL.$item.eq(index).find('.' + $object.dataL.modulSettings.classPrefix + 'video').append($object.loadVideo(src, '' + $object.dataL.modulSettings.classPrefix + 'object', index)); }); $object.dataL.$element.on('onAferAppendSlide.rwd-container', function (event, index){ $object.dataL.$item.eq(index).find('.' + $object.dataL.settings.classPrefix + 'video-cont').css({ 'max-width': $object.dataL.modulSettings.videoMaxWidth + 'px' }); }); $object.dataL.$element.on('onBeforeSlide.rwd-container', function (event, prevIndex, index){ var $videoSlide=$object.dataL.$item.eq(prevIndex), youtubePlayer=$videoSlide.find('.rwd-youtube').get(0), vimeoPlayer=$videoSlide.find('.rwd-vimeo').get(0); if(youtubePlayer){ youtubePlayer.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*'); }else if(vimeoPlayer){ try { $f(vimeoPlayer).api('pause'); } catch (e){ console.error('Make sure you have included froogaloop2 js'); }} var src; src=$object.dataL.$items.eq(index).attr('href'); var isVideo=$object.dataL.isVideo(src, index)||{}; if(isVideo.youtube||isVideo.vimeo){ $object.dataL.$cont.addClass($object.dataL.modulSettings.classPrefix + 'hide-actual-size'); $object.dataL.$cont.addClass($object.dataL.modulSettings.classPrefix + 'hide-fullwidth'); $object.dataL.$cont.addClass($object.dataL.modulSettings.classPrefix + 'hide-zoom-in'); $object.dataL.$cont.addClass($object.dataL.modulSettings.classPrefix + 'hide-zoom-out'); }}); $object.dataL.$element.on('onAfterSlide.rwd-container', function (event, prevIndex){ $object.dataL.$item.eq(prevIndex).removeClass($object.dataL.modulSettings.classPrefix + 'video-playing'); }); }; Modul.prototype.loadVideo=function (src, addClass, index){ var video='', isVideo=this.dataL.isVideo(src, index)||{}; if(isVideo.youtube){ video=''; }else if(isVideo.vimeo){ video=''; } return video; }; Modul.prototype.initFullWidth=function (){ var $object=this, $fullWidth, $fullWidthOn; $fullWidth='' + '' + ''; $fullWidthOn='' + '' + ''; if(this.dataL.modulSettings.fullwidth){ var fullwidth='' + $fullWidth + $fullWidthOn + ''; switch (gallery_video_resp_lightbox_obj.gallery_video_lightbox_lightboxView){ case 'view1': default: this.dataL.$cont.find('.rwd-toolbar').append(fullwidth); break; case 'view2': this.dataL.$cont.find('.rwd-bar').append(fullwidth); break; case 'view4': $(fullwidth).insertBefore('.rwd-title'); break; }} if(this.dataL.modulSettings.fullwidth){ $('.rwd-fullwidth').on('click.rwd-container', function (){ !$('.rwd-cont').hasClass('rwd-fullwidth-on') ? $object.onFullWidth():$object.offFullWidth(); }); }}; Modul.prototype.onFullWidth=function (){ var $imageObject=this.dataL.$cont.find('.rwd-current .rwd-image'); $('#rwd-fullwidth').css({'display': 'none'}); $('#rwd-fullwidth_on').css({'display': 'inline-block'}); $('.rwd-cont').addClass('rwd-fullwidth-on'); $('.rwd-container').css({ width: '100%', height: '100%' }); var k=$imageObject.width() / $imageObject.height(); if($imageObject.width() > $imageObject.height()&&k > 2){ $imageObject.css({ 'min-width': '100%' }); }else{ $imageObject.css({ 'min-height': '100%' }); } if(gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoom){ $('.rwd-zoomDiv').css({ top: '45px', width: '100%' }); }}; Modul.prototype.offFullWidth=function (){ var $imageObject=this.dataL.$cont.find('.rwd-current .rwd-image'); $('#rwd-fullwidth').css({'display': 'inline-block'}); $('#rwd-fullwidth_on').css({'display': 'none'}); $('.rwd-cont').removeClass('rwd-fullwidth-on'); $('.rwd-container').css({ width: gallery_video_resp_lightbox_obj.gallery_video_lightbox_width_new + '%', height: gallery_video_resp_lightbox_obj.gallery_video_lightbox_height_new + '%' }); $imageObject.css({ 'min-width': '', 'min-height': '' }); if(gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoom){ $('.rwd-zoomDiv').css({ top: ((document.documentElement.clientHeight - $('.rwd-container').height()) / 2) + 'px', width: this.dataL.settings.width }); }}; Modul.prototype.initZoom=function (){ var $object=this, zoomIcons, $zoomIn, $zoomOut, scale; $zoomIn='' + '' + '' + ''; $zoomOut='' + '' + '' + ''; zoomIcons='' + $zoomOut + '' + $zoomIn + ''; switch (gallery_video_resp_lightbox_obj.gallery_video_lightbox_lightboxView){ case 'view1': default: this.dataL.$cont.find('.rwd-toolbar').append(zoomIcons); break; case 'view2': this.dataL.$cont.find('.rwd-bar').append(zoomIcons); break; case 'view4': $(zoomIcons).insertBefore('.rwd-title'); break; } scale=1; function zoom(scaleVal){ var $imageObject, _x, _y, offsetX, offsetY, x, y; $imageObject=$object.dataL.$cont.find('.rwd-current .rwd-image'); offsetX=($(window).width() - $imageObject.width()) / 2; offsetY=(($(window).height() - $imageObject.height()) / 2) + $(window).scrollTop(); _x=$object.pageX - offsetX; _y=$object.pageY - offsetY; x=_x; y=_y; $imageObject.css('transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)').attr('data-scale', scaleVal); $imageObject.parent().css({ transform: 'translate3d(0, ' + -y + 'px, 0)' }).attr('data-y', -y); } function callScale(){ if(scale > 1){ $object.dataL.$cont.addClass('rwd-zoomed'); }else{ $object.dataL.$cont.removeClass('rwd-zoomed'); } if(scale < 1){ scale=1; } zoom(scale); } $(window).on('resize.rwd-container.zoom scroll.rwd-container.zoom orientationchange.rwd-container.zoom', function (){ $object.pageX=$(window).width() / 2; $object.pageY=($(window).height() / 2) + $(window).scrollTop(); zoom(scale); }); $('#rwd-zoom-out').on('click.rwd-container', function (){ if($object.dataL.$cont.find('.rwd-current .rwd-image').length){ scale -=$object.dataL.modulSettings.scale; callScale(); }}); $('#rwd-zoom-in').on('click.rwd-container', function (){ if($object.dataL.$cont.find('.rwd-current .rwd-image').length){ scale +=$object.dataL.modulSettings.scale; callScale(); }}); if(gallery_video_resp_lightbox_obj.gallery_video_lightbox_zoomlogo!=='0'){ $object.dataL.$cont.dblclick(function (){ if(!$object.dataL.$cont.hasClass('dbl-zoomed')){ $object.dataL.$cont.addClass('dbl-zoomed'); if($object.dataL.$cont.find('.rwd-current .rwd-image').length){ scale +=$object.dataL.modulSettings.scale; callScale(); }}else{ $object.dataL.$cont.removeClass('dbl-zoomed'); if($object.dataL.$cont.find('.rwd-current .rwd-image').length){ scale -=$object.dataL.modulSettings.scale; callScale(); }} }); } if(!('ontouchstart' in document.documentElement)){ $object.zoomDrag(); } if(('ontouchstart' in document.documentElement)){ $object.zoomSwipe(); }}; Modul.prototype.touchendZoom=function (startCoords, endCoords, abscissa, ordinate){ var $object=this, _$el, $imageObject, distanceX, distanceY, maxX, maxY; _$el=$object.dataL.$item.eq($object.dataL.index).find('.rwd-img-wrap'); $imageObject=$object.dataL.$item.eq($object.dataL.index).find('.rwd-object'); maxX=Math.abs($imageObject.outerWidth() * Math.abs($imageObject.attr('data-scale')) - $object.dataL.$cont.find('.rwd-container').width()) / 2; maxY=Math.abs($imageObject.outerHeight() * Math.abs($imageObject.attr('data-scale')) - $object.dataL.$cont.find('.rwd-container').height()) / 2 + $(window).scrollTop(); if(_$el.attr('data-x')){ distanceX=+_$el.attr('data-x') + (endCoords.x - startCoords.x); }else{ distanceX=endCoords.x - startCoords.x; } distanceY=+_$el.attr('data-y') + (endCoords.y - startCoords.y); if((Math.abs(endCoords.x - startCoords.x) > 15)||(Math.abs(endCoords.y - startCoords.y) > 15)){ if(abscissa){ if(endCoords.x - startCoords.x < 0){ if(distanceX <=-maxX){ distanceX=-maxX; }}else{ if(distanceX >=maxX){ distanceX=maxX; }} _$el.attr('data-x', distanceX); } if(ordinate){ if(endCoords.y - startCoords.y < 0){ if(distanceY <=-(maxY + ($object.pageY - ($(window).height() - $imageObject.height()) / 2)) + 2 * $(window).scrollTop()){ distanceY=-(maxY + ($object.pageY - ($(window).height() - $imageObject.height()) / 2)) + 2 * $(window).scrollTop(); }}else{ if(distanceY >=maxY - ($object.pageY - ($(window).height() - $imageObject.height()) / 2)){ distanceY=maxY - ($object.pageY - ($(window).height() - $imageObject.height()) / 2); }} _$el.attr('data-y', distanceY); } _$el.css({ transform: 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)' }); }}; Modul.prototype.zoomDrag=function (){ var $object=this; var startCoords={}; var endCoords={}; var isDraging=false; var isMoved=false; var abscissa=false; var ordinate=false; $object.dataL.$item.on('mousedown.rwd-container.zoom', function (e){ var $imageObject=$object.dataL.$item.eq($object.dataL.index).find('.rwd-object'); ordinate=$imageObject.outerHeight() * $imageObject.attr('data-scale') > $object.dataL.$cont.find('.rwd-container').height(); abscissa=$imageObject.outerWidth() * $imageObject.attr('data-scale') > $object.dataL.$cont.find('.rwd-container').width(); if($object.dataL.$cont.hasClass('rwd-zoomed')){ if($(e.target).hasClass('rwd-object')&&(abscissa||ordinate)){ e.preventDefault(); startCoords={ x: e.pageX, y: e.pageY }; isDraging=true; $object.dataL.$cont.scrollLeft +=1; $object.dataL.$cont.scrollLeft -=1; }} }); $(window).on('mousemove.rwd-container.zoom', function (e){ if(isDraging){ var _$el=$object.dataL.$item.eq($object.dataL.index).find('.rwd-img-wrap'); var distanceX; var distanceY; isMoved=true; endCoords={ x: e.pageX, y: e.pageY }; if(_$el.attr('data-x')){ distanceX=+_$el.attr('data-x') + (endCoords.x - startCoords.x); }else{ distanceX=endCoords.x - startCoords.x; } if(ordinate){ distanceY=+_$el.attr('data-y') + (endCoords.y - startCoords.y); } _$el.css({ transform: 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)' }); }}); $(window).on('mouseup.rwd-container.zoom', function (e){ if(isDraging){ isDraging=false; if(isMoved&&((startCoords.x!==endCoords.x)||(startCoords.y!==endCoords.y))){ endCoords={ x: e.pageX, y: e.pageY }; $object.touchendZoom(startCoords, endCoords, abscissa, ordinate); } isMoved=false; }}); }; Modul.prototype.zoomSwipe=function (){ var $object=this; var startCoords={}; var endCoords={}; var isMoved=false; var abscissa=false; var ordinate=false; $object.dataL.$item.on('touchstart.rwd-container', function (e){ if($object.dataL.$cont.hasClass('rwd-zoomed')){ var $imageObject=$object.dataL.$item.eq($object.dataL.index).find('.rwd-object'); ordinate=$imageObject.outerHeight() * $imageObject.attr('data-scale') > $object.dataL.$cont.find('.rwd-container').height(); abscissa=$imageObject.outerWidth() * $imageObject.attr('data-scale') > $object.dataL.$cont.find('.rwd-container').width(); if((abscissa||ordinate)){ e.preventDefault(); startCoords={ x: e.originalEvent.targetTouches[0].pageX, y: e.originalEvent.targetTouches[0].pageY };}} }); $object.dataL.$item.on('touchmove.rwd-container', function (e){ if($object.dataL.$cont.hasClass('rwd-zoomed')){ var _$el=$object.dataL.$item.eq($object.dataL.index).find('.rwd-img-wrap'); var distanceX; var distanceY; e.preventDefault(); isMoved=true; endCoords={ x: e.originalEvent.targetTouches[0].pageX, y: e.originalEvent.targetTouches[0].pageY }; if(_$el.attr('data-x')){ distanceX=+_$el.attr('data-x') + (endCoords.x - startCoords.x); }else{ distanceX=endCoords.x - startCoords.x; } if(ordinate){ distanceY=+_$el.attr('data-y') + (endCoords.y - startCoords.y); } if((Math.abs(endCoords.x - startCoords.x) > 15)||(Math.abs(endCoords.y - startCoords.y) > 15)){ _$el.css({ transform: 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)' }); }} }); $object.dataL.$item.on('touchend.rwd-container', function (){ if($object.dataL.$cont.hasClass('rwd-zoomed')){ if(isMoved){ isMoved=false; $object.touchendZoom(startCoords, endCoords, abscissa, ordinate); }} }); }; Modul.prototype.initThumbs=function (){ var $object=this; if(this.dataL.modulSettings.thumbnail&&this.dataL.$items.length > 1){ if(this.dataL.modulSettings.showByDefault){ setTimeout(function (){ $object.dataL.$cont.addClass('rwd-thumb-open'); }, 100); } this.buildThumbs(); this.dataL.effectsSupport()&&this.enableThumbDrag(); this.activatedThumbs=false; if($object.dataL.modulSettings.toogleThumb){ $object.$thumbCont.append(''); $object.dataL.$cont.find('.rwd-toggle-thumb').on('click.rwd-container', function (){ $object.dataL.$cont.toggleClass('rwd-thumb-open'); }); }} $('.rwd-container .rwd-thumb-item').css({ background: '#' + this.dataL.modulSettings.thumbsOverlayColor }); $('.rwd-container .rwd-thumb-item img').css({ opacity: 1 - +this.dataL.modulSettings.thumbsOverlayOpacity / 100 }); $('.rwd-thumb-cont').css({ bottom: -$object.dataL.modulSettings.thumbsHeight + 'px' }); if(this.dataL.modulSettings.showByDefault){ var $cont_=$('.cont-inner'), $thumb_=$('.rwd-thumb-cont'), $toolbar_=$('.rwd-toolbar'); setTimeout(function (){ switch ($object.dataL.settings.lightboxView){ case 'view1': switch ($object.dataL.modulSettings.thumbPosition){ case '0': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 92) + 'px)', top: '47px' }); $thumb_.css({ bottom: '0', backgroundColor: 'rgba(0,0,0,.9)' }); $('.rwd-bar > *').css({ bottom: $object.dataL.modulSettings.thumbsHeight + 'px' }); break; case '1': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 92) + 'px)', top: $object.dataL.modulSettings.thumbsHeight + 47 + 'px' }); $thumb_.css({ top: '47px', backgroundColor: 'rgba(0,0,0,.9)' }); break; } break; case 'view2': switch ($object.dataL.modulSettings.thumbPosition){ case '0': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 92) + 'px)', top: '45px' }); $thumb_.css({ bottom: '45px', backgroundColor: 'rgba(0,0,0,.9)' }); break; case '1': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 92) + 'px)', top: $object.dataL.modulSettings.thumbsHeight + 45 + 'px' }); $thumb_.css({ top: '0', backgroundColor: 'rgba(0,0,0,.9)' }); $toolbar_.css({ top: $object.dataL.modulSettings.thumbsHeight + 'px' }); break; } break; case 'view3': switch ($object.dataL.modulSettings.thumbPosition){ case '0': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 92) + 'px)', top: '47px' }); $thumb_.css({ bottom: '0', backgroundColor: 'white' }); $('.rwd-title').css({ bottom: $object.dataL.modulSettings.thumbsHeight + 'px' }); break; case '1': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 93) + 'px)', top: ($object.dataL.modulSettings.thumbsHeight + 48) + 'px' }); $thumb_.css({ top: '48px', backgroundColor: 'white' }); break; } break; case 'view4': switch ($object.dataL.modulSettings.thumbPosition){ case '0': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 92) + 'px)' }); $thumb_.css({ bottom: '0', backgroundColor: 'none' }); $('.rwd-socialIcons').css({ bottom: ($object.dataL.modulSettings.thumbsHeight - 10) + 'px' }); $('.barCont').css({ bottom: $object.dataL.modulSettings.thumbsHeight + 'px' }); $('#rwd-counter').css({ bottom: ($object.dataL.modulSettings.thumbsHeight + 5) + 'px' }); $('.rwd-item').css({ top: '47px' }); break; case '1': $cont_.css({ height: 'calc(100% - ' + ($object.dataL.modulSettings.thumbsHeight + 90) + 'px)', top: $object.dataL.modulSettings.thumbsHeight + 45 + 'px' }); $thumb_.css({ top: '45px', backgroundColor: 'none' }); break; } break; case 'view5': switch ($object.dataL.modulSettings.thumbPosition){ case '0': $cont_.css({ height: 'calc(100% - ' + $object.dataL.modulSettings.thumbsHeight + 'px)' }); $thumb_.css({ bottom: '0' }); break; case '1': $cont_.css({ height: 'calc(100% - ' + $object.dataL.modulSettings.thumbsHeight + 'px)', top: $object.dataL.modulSettings.thumbsHeight + 'px' }); $thumb_.css({ top: '0' }); break; } break; }}, 100); }}; Modul.prototype.buildThumbs=function (){ var $object=this; var thumbList=''; var vimeoErrorThumbSize=''; var $thumb; var html='
' + '
' + '
' + '
'; vimeoErrorThumbSize='100x75'; $object.dataL.$cont.addClass('rwd-has-thumb'); $object.dataL.$cont.find('.rwd-container').append(html); $object.$thumbCont=$object.dataL.$cont.find('.rwd-thumb-cont'); $object.thumbContWidth=$object.$thumbCont.width(); $object.dataL.$cont.find('.rwd-thumb').css({ width: $object.thumbTotalWidth + 'px', position: 'relative' }); $object.$thumbCont.css('height', $object.dataL.modulSettings.thumbsHeight + 'px'); function getThumb(src, thumb, index){ var isVideo=$object.dataL.isVideo(src, index)||{}; var thumbImg; var vimeoId=''; if(isVideo.youtube||isVideo.vimeo||isVideo.dailymotion){ if(isVideo.youtube){ thumbImg='//img.youtube.com/vi/' + isVideo.youtube[1] + '/1.jpg'; }else if(isVideo.vimeo){ thumbImg='//i.vimeocdn.com/video/error_' + vimeoErrorThumbSize + '.jpg'; vimeoId=isVideo.vimeo[1]; }}else{ thumbImg=thumb; } thumbList +='
'; vimeoId=''; } $object.dataL.$items.each(function (i){ getThumb($(this).attr('href')||$(this).attr('data-src'), $(this).find('img').attr('src'), i); }); $object.dataL.$cont.find('.rwd-thumb').html(thumbList); $thumb=$object.dataL.$cont.find('.rwd-thumb-item'); $thumb.each(function (){ var $this=$(this); var vimeoVideoId=$this.attr('data-vimeo-id'); if(vimeoVideoId){ $.getJSON('//www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=?', { format: 'json' }, function (data){ $this.find('img').attr('src', data[0]['thumbnail_small']); }); }}); $thumb.eq($object.dataL.index).addClass('active'); $object.dataL.$element.on('onBeforeSlide.rwd-container', function (){ $thumb.removeClass('active'); $thumb.eq($object.dataL.index).addClass('active'); }); $thumb.on('click.rwd-container touchend.rwd-container', function (){ var _$this=$(this); setTimeout(function (){ if($object.activatedThumbs||!$object.dataL.effectsSupport()){ $object.dataL.index=_$this.index(); $object.dataL.slide($object.dataL.index, false, true); $('.rwd-thumb').removeClass('thumb_move'); }}, 50); }); $object.dataL.$element.on('onBeforeSlide.rwd-container', function (){ $object.animateThumb($object.dataL.index); }); $(window).on('resize.rwd-container.thumb orientationchange.rwd-container.thumb', function (){ setTimeout(function (){ $object.animateThumb($object.dataL.index); $object.thumbContWidth=$object.$thumbCont.width(); }, 200); }); }; Modul.prototype.animateThumb=function (index){ var $thumb=this.dataL.$cont.find('.rwd-thumb'), position=(this.thumbContWidth / 2) - (this.dataL.modulSettings.thumbsWidth / 2); this.left=((this.dataL.modulSettings.thumbsWidth + this.dataL.modulSettings.thumbMargin) * index - 1) - position; if(this.left > (this.thumbTotalWidth - this.thumbContWidth)){ this.left=this.thumbTotalWidth - this.thumbContWidth; } if(this.left < 0){ this.left=0; } if(this.dataL.rwdalleryOn){ if(!$thumb.hasClass('on')){ this.dataL.$cont.find('.rwd-thumb').css('transition-duration', this.dataL.modulSettings.speed + 'ms'); } if(!this.dataL.effectsSupport()){ $thumb.animate({ left: -this.left + 'px' }, this.dataL.modulSettings.speed); }}else{ if(!this.dataL.effectsSupport()){ $thumb.css('left', -this.left + 'px'); }} if(!$('.rwd-thumb').hasClass('thumb_move')){ this.dataL.$cont.find('.rwd-thumb').css({ transform: 'translate3d(-' + (this.left) + 'px, 0px, 0px)' }); }}; Modul.prototype.enableThumbDrag=function (){ var $object=this, startCoords=0, endCoords=0, isDraging=false, isMoved=false, tempLeft=0, $left_=((this.dataL.modulSettings.thumbsWidth + this.dataL.modulSettings.thumbMargin) * $object.dataL.index - 1) - (this.thumbContWidth / 2) - (this.dataL.modulSettings.thumbsWidth / 2); $('.rwd-thumb').attr('data-left', $left_); $object.dataL.$cont.find('.rwd-thumb').on('mousedown.rwd-container.thumb', function (e){ if($object.thumbTotalWidth > $object.thumbContWidth){ e.preventDefault(); startCoords=e.pageX; isDraging=true; $object.dataL.$cont.scrollLeft +=1; $object.dataL.$cont.scrollLeft -=1; $object.activatedThumbs=false; }}); $(window).on('mousemove.rwd-container.thumb', function (e){ if(isDraging){ tempLeft=+$('.rwd-thumb').attr('data-left'); isMoved=true; endCoords=e.pageX; if(Math.abs(endCoords - startCoords) > 0&&$('.rwd-cont').hasClass('rwd-show-autoplay')){ $('.rwd-thumb').addClass('thumb_move'); } tempLeft=tempLeft - (endCoords - startCoords); if(tempLeft > ($object.thumbTotalWidth - $object.thumbContWidth)){ tempLeft=$object.thumbTotalWidth - $object.thumbContWidth; } if(tempLeft < 0){ tempLeft=0; } $object.dataL.$cont.find('.rwd-thumb').css({ transform: 'translate3d(-' + (tempLeft) + 'px, 0px, 0px)' }); }}); $(window).on('mouseup.rwd-container.thumb', function (){ if(isMoved){ isMoved=false; $('.rwd-thumb').attr('data-left', tempLeft); }else{ $object.activatedThumbs=true; } if(isDraging){ isDraging=false; }}); }; Modul.prototype.destroy=function (){ var $object=this; $object.dataL.$element.off('.rwd-container.zoom'); $(window).off('.rwd-container.zoom'); $object.dataL.$item.off('.rwd-container.zoom'); $object.dataL.$element.off('.rwd-container.zoom'); $object.dataL.$cont.removeClass('rwd-zoomed'); clearTimeout($object.zoomabletimeout); $object.zoomabletimeout=false; if(this.dataL.modulSettings.thumbnail&&this.dataL.$items.length > 1){ $(window).off('resize.rwd-container.thumb orientationchange.rwd-container.thumb keydown.rwd-container.thumb'); this.$thumbCont.remove(); this.dataL.$cont.removeClass('rwd-has-thumb'); $('.cont-inner').css({ height: '100%' }); }}; $.fn.lightboxVideo.lightboxModul.modul=Modul; var WaterMark=function (element){ this.element=element; this.settings=$.extend({}, this.constructor.defaults); this.init(); }; WaterMark.defaults={ imgSrc: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_img_src_new, text: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_text, textColor: '#' + gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_textColor, textFontSize: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_textFontSize, containerBackground: gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_container_bg_color, containerWidth: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_containerWidth, position: 'pos' + gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_position_new, opacity: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_opacity / 100, margin: +gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_margin, done: function (imgURL){ this.dataset.src=imgURL; }}; WaterMark.prototype.init=function (){ var $object=this, $elem=$object.element, $settings=$object.settings, wmData={}, imageData={}; var WatermarkImage=jQuery(''); WatermarkImage.attr('src', $object.settings.imgSrc); WatermarkImage.css('display', 'none').attr('id', 'huge_it_watermark_img_sample'); if(!jQuery('body').find('#huge_it_watermark_img_sample').length){ jQuery('body').append(WatermarkImage); } wmData={ imgurl: $settings.imgSrc, type: 'jpeg' }; imageData={ imgurl: $elem.dataset.imgsrc }; var defer=$.Deferred(); $.when(defer).done(function (imgObj){ imageData.$wmObject=imgObj; $object.imgurltodata(imageData, function (dataURL){ $settings.done.call($elem, dataURL); }); }); if($settings.text!==''){ wmData.imgurl=$object.textwatermark(); } $object.imgurltodata(wmData, function (imgObj){ defer.resolve(imgObj); }); }; WaterMark.prototype.textwatermark=function (){ var $object=this, $settings, canvas, context, $width, $height; $settings=$object.settings; canvas=document.createElement('canvas'); context=canvas.getContext('2d'); $width=$settings.containerWidth; $height=$settings.textFontSize; canvas.width=$width; canvas.height=$height; context.fillStyle=$settings.containerBackground; context.fillRect(0, 0, $width, $height); context.fillStyle=$settings.textColor; context.textAlign='center'; context.font='500 ' + $settings.textFontSize + 'px Sans-serif'; context.fillText($settings.text, ($width / 2), ($height - 5)); return canvas.toDataURL(); }; WaterMark.prototype.imgurltodata=function (data, callback){ var $object=this, $settings=$object.settings, img; img=new Image(); img.setAttribute('crossOrigin', 'anonymous'); img.onload=function (){ var canvas=document.createElement('canvas'), context=canvas.getContext('2d'), $imgWidth=this.width, $imgHeight=this.height; if(data.$wmObject){ if(data.width!=='auto'&&data.height==='auto'&&data.width < $imgWidth){ $imgHeight=$imgHeight / $imgWidth * data.width; $imgWidth=data.width; }else if(data.width==='auto'&&data.height!=='auto'&&data.height < $imgHeight){ $imgWidth=$imgWidth / $imgHeight * data.height; $imgHeight=data.height; }else if(data.width!=='auto'&&data.height!=='auto'&&data.width < $imgWidth&&data.height < $imgHeight){ $imgWidth=data.width; $imgHeight=data.height; }} canvas.width=$imgWidth; canvas.height=$imgHeight; context.drawImage(this, 0, 0, $imgWidth, $imgHeight); if(data.$wmObject){ var $opacity=+gallery_video_resp_lightbox_obj.gallery_video_lightbox_watermark_containerOpacity / 100; if($opacity >=0&&$opacity <=1){ context.globalAlpha=$opacity; } var $wmWidth, $wmHeight, pos=$settings.margin, $x, $y; if($settings.text!==''){ $wmWidth=data.$wmObject.width; $wmHeight=data.$wmObject.height; }else{ $wmWidth=$settings.containerWidth; $wmHeight=(jQuery('img#huge_it_watermark_img_sample').prop('naturalHeight') * $wmWidth) / jQuery('img#huge_it_watermark_img_sample').prop('naturalWidth'); } switch ($settings.position){ case 'pos1': $x=pos; $y=pos; break; case 'pos2': $x=$imgWidth / 2 - $wmWidth / 2; $y=pos; break; case 'pos3': $x=$imgWidth - $wmWidth - pos; $y=pos; break; case 'pos4': $x=pos; $y=$imgHeight / 2 - $wmHeight / 2; break; case 'pos5': $x=$imgWidth / 2 - $wmWidth / 2; $y=$imgHeight / 2 - $wmHeight / 2; break; case 'pos6': $x=$imgWidth - $wmWidth - pos; $y=$imgHeight / 2 - $wmHeight / 2; break; case 'pos7': $x=pos; $y=$imgHeight - $wmHeight - pos; break; case 'pos8': $x=$imgWidth / 2 - $wmWidth / 2; $y=$imgHeight - $wmHeight - pos; break; case 'pos9': $x=$imgWidth - $wmWidth - pos; $y=$imgHeight - $wmHeight - pos; break; default: $x=$imgWidth - $wmWidth - pos; $y=$imgHeight - $wmHeight - pos; } context.drawImage(data.$wmObject, $x, $y, $wmWidth, $wmHeight); } var dataURL=canvas.toDataURL('image/' + data.type); if(typeof callback==='function'){ if(data.$wmObject){ callback(dataURL); }else{ var $wmNew=new Image(); $wmNew.src=dataURL; callback($wmNew); }} canvas=null; }; img.src=data.imgurl; }; $.fn['watermark']=function (){ return this.each(function (){ if(!$.data(this, 'watermark')){ $.data(this, 'watermark', new WaterMark(this)); }}); };})(jQuery);